package com.wei.czz.common.dto.blog.comment;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.wei.czz.common.tool.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2021-08-24 10:22:00
 * className: CommentDto 博客评论信息封装类
 * version: 1.0
 * description:
 * 	`@JsonInclude(JsonInclude.Include.NON_EMPTY)`：接口返回对象时，如果某个字段值为空，序列化不操作该字段
 */
@Getter
@Setter
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class CommentDto extends BaseEntity {

	/**
	 * 评论主键
	 * 
	 */
	private String commentId;

	/**
	 * 区块id[取第一级评论用户id作为区块id值，第一级以下的评论用区块id代表整个评论区块]
	 * 
	 */
	private String blockId;

	/**
	 * 评论用户id
	 * 
	 */
	private String userId;

	/**
	 * 评论用户名称
	 */
	private String userName;

	/**
	 * 评论用户头像
	 */
	private String userAvatar;

	/**
	 * 被评论用户名称[如果用户评论博客，则该值为空]
	 */
	private String parentUserName;

	/**
	 * 评论被点赞数
	 */
	private Integer likeNum;

	/**
	 * 评论被回复数
	 */
	private Integer replyNum;

	/**
	 * 评论删除状态[0-正常 1-删除]
	 */
	private Integer deleteFlag;

	/**
	 * 评论隐藏状态[0-正常 1-隐藏]
	 */
	private Integer hideFlag;

	/**
	 * 作者点赞状态[0-点赞 1-正常]
	 */
	private Integer authorLike;

	/**
	 * 评论置顶状态[0-置顶 1-正常]
	 */
	private Integer topFlag;

	/**
	 * 用户评论内容
	 */
	private String content;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 用户点赞博客标记（如果该字段有值，则说明正在获取博客评论的用户点赞了该条评论，为空则说明用户没有点赞该条评论）
	 */
	private String likeFlag;

	/**
	 * 评论是否一级评论[0-是 1-不是]
	 */
	private String oneCommentFlag;

	/**
	 * 当前评论的所有子评论
	 */
	private List<CommentDto> childComments;

}
